package com.bsg.upm.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.bsg.upm.entity.NetworkingEntity;

/**
 * 网段接口
 * 
 * @author HCK
 *
 */
public interface NetworkingDao extends CrudDao<NetworkingEntity> {

	/**
	 * 获取指定站点下的所有网段范围
	 * 
	 * @param siteId
	 *            站点编码
	 * @return 网段集合
	 */
	List<NetworkingEntity> listStartAndEndIpBySiteId(String siteId);

	/**
	 * 获取未使用的网段名称
	 * 
	 * @param siteId
	 *            站点编码
	 * @param enabled
	 *            可用
	 * @return 未使用的网段集合
	 */
	List<NetworkingEntity> listUnusedName(@Param("siteId") String siteId, @Param("enabled") Boolean enabled);

	/**
	 * 获取指定站点的网段个数
	 * 
	 * @param siteId
	 *            站点编码
	 * @return 网段个数
	 */
	int countBySiteId(String siteId);

	/**
	 * 获取指定站点和网段名称的网段个数
	 * 
	 * @param siteId
	 *            站点编码
	 * @param name
	 *            网段名称
	 * @return 网段个数
	 */
	int countBySiteIdAndName(@Param("siteId") String siteId, @Param("name") String name);

	/**
	 * 更新网段可用状态
	 * 
	 * @param networking
	 *            网段对象
	 * @return 更新数据条数
	 */
	int updateEnabled(NetworkingEntity networking);
}
